Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>ECMAScript</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/ECMAScript"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-ECMAScript rootpage-ECMAScript skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">ECMAScript</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">
<p><b>ECMAScript</b> est un ensemble de normes concernant les <a href="Langage_de_programmation" title="Langage de programmation">langages de programmation</a> de type <a href="Langage_de_script" title="Langage de script">script</a> et standardisées par <a href="Ecma_International" title="Ecma International">Ecma International</a> dans le cadre de la spécification ECMA-262. Il s'agit donc d'un standard, dont les spécifications sont mises en œuvre dans différents langages de script, comme <a href="JavaScript" title="JavaScript">JavaScript</a> ou <a href="ActionScript" title="ActionScript">ActionScript</a>. C'est un <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a> <a href="Programmation_orient%C3%A9e_prototype" title="Programmation orientée prototype">orienté prototype</a>.
</p>

<div class="mw-heading mw-heading2"><h2 id="Histoire_et_développement"><span id="Histoire_et_d.C3.A9veloppement"></span>Histoire et développement</h2></div>
<div class="mw-heading mw-heading3"><h3 id="LiveScript_et_Mosaic_Communications_Corporation">LiveScript et Mosaic Communications Corporation</h3></div>
<p>La société <a href="Netscape_Communications_Corporation" class="mw-redirect" title="Netscape Communications Corporation">Netscape</a>, à l'origine connue sous le nom de <a href="Mosaic_Communications_Corporation" class="mw-redirect" title="Mosaic Communications Corporation">Mosaic Communications Corporation</a>, a développé un langage de script côté client, appelé <a href="LiveScript" title="LiveScript">LiveScript</a>, pour renforcer l'offre commerciale de son <a href="Serveur_web" title="Serveur web">serveur web</a>. La sortie de LiveScript est intervenue à l'époque où le <a href="National_Center_for_Supercomputing_Applications" title="National Center for Supercomputing Applications">NCSA</a> forçait <i>Mosaic Communications Corporation</i> à changer de nom pour devenir <a href="Netscape" class="mw-redirect" title="Netscape">Netscape</a>.
</p><p><a href="Netscape" class="mw-redirect" title="Netscape">Netscape</a> travailla alors au développement d'une version orientée client de <a href="LiveScript" title="LiveScript">LiveScript</a>. Quelques jours avant sa sortie, <a href="Netscape" class="mw-redirect" title="Netscape">Netscape</a> changea le nom de LiveScript pour <a href="JavaScript" title="JavaScript">JavaScript</a>. <a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a> et <a href="Netscape_Communications_Corporation" class="mw-redirect" title="Netscape Communications Corporation">Netscape</a> étant partenaires, et la machine virtuelle <a href="Java_(langage)" title="Java (langage)">Java</a> étant de plus en plus populaire, ce changement de nom servait les intérêts des deux sociétés. <a href="Sun_Microsystems" title="Sun Microsystems">Sun</a> promit donc de ne pas poursuivre Netscape<sup class="need_ref_tag" style="padding-left:2px;"><span title="Ce passage nécessite une référence ; voir l'aide.">[réf.&nbsp;nécessaire]</span></sup>.
</p>
<div class="mw-heading mw-heading3"><h3 id="JavaScript_et_Netscape">JavaScript et Netscape</h3></div>
<p>En décembre 1995, <a href="Sun_Microsystems" title="Sun Microsystems">Sun</a> et <a href="Netscape_Communications_Corporation" class="mw-redirect" title="Netscape Communications Corporation">Netscape</a> annoncent la sortie de <a href="JavaScript" title="JavaScript">JavaScript</a>. En mars 1996, Netscape implémente le <a href="Moteur_JavaScript" title="Moteur JavaScript">moteur JavaScript</a> dans son navigateur web <a href="Netscape_Navigator" title="Netscape Navigator">Netscape Navigator</a> 2.0. Le succès de ce navigateur contribue à l'adoption rapide de JavaScript dans le développement web orienté client. <a href="Microsoft" title="Microsoft">Microsoft</a> réagit alors en développant <a href="JScript" title="JScript">JScript</a>, qu'il inclut ensuite dans <a href="Internet_Explorer" title="Internet Explorer">Internet Explorer</a> 3.0 en août 1996 pour la sortie de son navigateur.
</p><p>Netscape soumet alors JavaScript à l'<a href="Ecma_International" title="Ecma International">ECMA</a> pour standardisation. Les travaux débutent en novembre 1996, et se terminent en juin 1997 par l'adoption du nouveau standard <b>ECMAScript</b>. Les spécifications sont rédigées dans le document <b>Standard ECMA-262</b>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Versions">Versions</h2></div>
<div class="mw-heading mw-heading3"><h3 id="ECMA-262">ECMA-262</h3></div>
<p>Il existe à ce jour 17 versions du standard ECMA-262<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="ECMAScript_Edition_4_(ES4)"><span id="ECMAScript_Edition_4_.28ES4.29"></span>ECMAScript Edition 4 (ES4)</h2></div>
<p>Aujourd'hui abandonné au profit d'ES5, les premiers travaux furent critiqués car ils modifiaient la nature du langage, qui passait d'un modèle de programmation avec les <i>prototypes</i> vers un modèle traditionnel fondé sur les classes comme Java, C++ ou C#.
</p><p>Ce modèle orienté <i>prototype</i> est pour beaucoup le modèle le plus performant en développement orienté objet<sup class="need_ref_tag" style="padding-left:2px;"><span title="Ce passage nécessite une référence ; voir l'aide.">[réf.&nbsp;nécessaire]</span></sup>.
</p><p>Une première version du référentiel d'implémentation d'ECMAScript 4 est disponible depuis juin 2007<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>.
</p><p>Par ailleurs, <a href="Mozilla_(chronique)" class="mw-redirect" title="Mozilla (chronique)">Mozilla</a> et <a href="Adobe_Systems" class="mw-redirect" title="Adobe Systems">Adobe Systems</a> ont travaillé à l'implémentation des spécifications d'ECMAScript 4 dans <a href="JavaScript" title="JavaScript">JavaScript</a> 2 et <a href="ActionScript" title="ActionScript">ActionScript</a> 3. Pour concilier ces implémentations avec la création de la <a href="Tamarin_(machine_virtuelle)" class="mw-redirect" title="Tamarin (machine virtuelle)">machine virtuelle Tamarin</a>, Mozilla et Adobe Systems collaborent sur le <a href="Projet_Tamarin" title="Projet Tamarin">projet Tamarin</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="ECMAScript_Edition_5_(ES5)"><span id="ECMAScript_Edition_5_.28ES5.29"></span>ECMAScript Edition 5 (ES5)</h2></div>
<p>À la suite des critiques envers ES4, un ensemble de sociétés, parmi lesquelles Yahoo, Microsoft et <a href="Google" title="Google">Google</a>, décident de développer en parallèle une mise à jour de l'ES3 moins ambitieuse, nommée ES3.1.
</p><p>Malgré les divergences d'option avec l'équipe consacrée à l'ES4, la décision est finalement prise d'arrêter le développement d'ES4 et de se consacrer exclusivement à l'ES3.1<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>, qui deviendra ES5 pour éviter toute ambiguïté, et est publié le 3 décembre 2009<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>.
</p><p>L'ensemble de ces spécifications sont aujourd'hui bien intégrées dans les navigateurs modernes<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="ECMAScript_Edition_6_(ES6/ES2015)"><span id="ECMAScript_Edition_6_.28ES6.2FES2015.29"></span>ECMAScript Edition 6 (ES6/ES2015)</h2></div>
<p>Nommée ES2015 et publiée en juin 2015<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>. C'est une mise à jour majeure qui apporte un lot considérable de nouvelles fonctionnalités (déclaration de variables avec <i>let</i> et <i>const</i>, fonctions fléchées, littéraux de gabarits, destructuration, opérateurs <i>rest</i> et <i>spread</i>, paramètres par défaut dans les fonctions, raccourcis de propriétés dans les objets, promesses, set et map, itérateurs et générateurs). Notamment, le modèle de programmation orientée objet basé sur les classes est finalement intégré, mais dans une version simplifiée par rapport à ce qui était proposé depuis ES4. Aussi, un système de module permettant une gestion simplifiée des dépendances et une meilleure modularité du code source (via <i>import</i> et <i>export</i>) est disponible nativement et devient la norme.
</p><p>L'implémentation de ES6 nécessitait autrefois d'être transpilée via un compilateur tel que <i>Babel</i> pour des soucis de compatibilité, mais elle est désormais prise en charge par toutes les versions récentes des navigateurs<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="ECMAScript_Edition_7_(ES7/ES2016)"><span id="ECMAScript_Edition_7_.28ES7.2FES2016.29"></span>ECMAScript Edition 7 (ES7/ES2016)</h2></div>
<p>Première version publiée après le changement du processus de normalisation, l'ES7, ou ES2016, apporte peu de changements au langage. Le nouveau processus prévoit en effet de publier chaque année une nouvelle norme avec les ajouts qui ont eu lieu dans l'intervalle, afin d'éviter de publier des changements énormes comme ce fut le cas en 2015<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="ECMAScript_Edition_8_(ES8/ES2017)"><span id="ECMAScript_Edition_8_.28ES8.2FES2017.29"></span>ECMAScript Edition 8 (ES8/ES2017)</h2></div>
<p>Ajout de la syntaxe <i>async</i> / <i>await</i> pour la gestion des opérations asynchrones.
</p>
<div class="mw-heading mw-heading2"><h2 id="Comparatif">Comparatif</h2></div>
<table class="wikitable">

<tbody><tr style="background: #ccccff;">
<th>Édition
</th>
<th>Date de publication
</th>
<th>Différences avec l'édition antérieure
</th></tr>
<tr>
<td>1
</td>
<td>Juin 1997
</td>
<td><abbr class="abbr" title="Première">1<sup>re</sup></abbr> édition.
</td></tr>
<tr>
<td>2
</td>
<td>Juin 1998
</td>
<td>Modifications rédactionnelles pour se conformer au standard international ISO/CEI-16262.
</td></tr>
<tr>
<td>3
</td>
<td>Décembre 1999
</td>
<td>Expressions rationnelles plus puissantes, amélioration de la manipulation des chaînes de caractères, nouvelles instructions de contrôle, gestion des exception avec les instructions try/catch, formatage des nombres.
</td></tr>
<tr>
<td>4
</td>
<td>Jamais
</td>
<td>Édition abandonnée.
</td></tr>
<tr>
<td>5
</td>
<td>Décembre 2009
</td>
<td>Clarification des ambiguïtés de la <abbr class="abbr" title="Troisième">3<sup>e</sup></abbr>&nbsp;édition, accesseurs, introspection, contrôle des attributs, fonctions de manipulation de tableaux supplémentaires, support du format JSON, mode strict pour la vérification des erreurs.
</td></tr>
<tr>
<td>6
</td>
<td>Juin 2015
</td>
<td>Modules, classes, portée lexicale au niveau des blocs, itérateurs et générateurs, promesses pour la programmation asynchrone, patrons de destructuration, optimisation des appels terminaux, nouvelles structures de données (tableaux associatifs, ensembles, tableaux binaires), support de caractères Unicode supplémentaires dans les chaînes de caractères et les expressions rationnelles, possibilité d'étendre les structures de données prédéfinies.
</td></tr>
<tr>
<td>7
</td>
<td>Juin 2016
</td>
<td>Opérateur d'exponentiation, méthode <i>includes</i> sur les tableaux.
</td></tr>
<tr>
<td>8
</td>
<td>Juin 2017
</td>
<td>Syntaxe <i>async</i> / <i>await</i> pour la gestion des opérations asynchrones dans un style synchrone, méthodes <i>entries</i>, <i>values</i> et <i>getOwnPropertyDescriptors</i> sur l'objet global Object, remplissage des chaînes de caractères avec <i>padStart</i> et <i>padEnd</i>, virgule finale autorisée dans les paramètres de fonction, amélioration de la méthode SharedArrayBuffer et de l'API Atomics.
</td></tr>
<tr>
<td>9
</td>
<td>Juin 2018
</td>
<td>Opérateur spread (...) pour les objets, itération asynchrone avec <i>for-await-of</i>, ajout de la méthode <i>finally</i> sur les promesses, amélioration des expressions régulières et des littéraux de gabarits.
</td></tr>
<tr>
<td>10
</td>
<td>Juin 2019
</td>
<td>Méthodes <i>flat</i> et <i>flatMap</i> sur les tableaux, méthode <i>fromEntries</i> sur Object (l'inverse de entries), méthodes <i>trimStart</i> et <i>trimEnd</i> sur les chaînes, le paramètre d'erreur dans un bloc catch devient optionnel, ajout d'une propriété <i>description</i> sur les symboles, amélioration de la gestion du JSON (avec la méthode <i>stringify</i>) qui peut désormais gérer les émojis et les caractères non-ASCII, modification de la méthode <i>toString</i> sur les fonctions pour renvoyer leur code source complet.
</td>
<td>
</td></tr>
<tr>
<td>11
</td>
<td>Juin 2020
</td>
<td>Nouveau type BigInt pour gérer des très grands entiers, opérateur de coalescence des nuls (??) pour une gestion facilitée des valeurs null et undefined, opérateur de chainage optionnel (?.) pour accéder aux propriétés profondément imbriquées d'un objet sans vérification, import de module asynchrone avec la fonction <i>import</i>, méthode <i>allSettled</i> sur les promesses, référence uniforme au contexte global avec <i>globalThis</i> (au lieu de <i>window</i>, <i>global</i> ou <i>self</i> selon l'environnement), améliorations des boucles <i>for-in</i> et <i>for-of</i>, <i>WeakRef</i> et <i>FinalizationRegistry</i> pour la gestion avancée de la mémoire.
</td></tr>
<tr>
<td>12
</td>
<td>Juin 2021
</td>
<td>Trois nouveaux opérateurs logiques avec affectation (&amp;&amp;=, ||=,&nbsp;??=), méthode <i>replaceAll</i> pour les chaînes, séparateurs numériques (_) pour améliorer la lisibilité des grands nombres, méthode <i>any</i> sur les promesses, nouveau type d'erreur <i>AggregateError</i> permettant de regrouper plusieurs erreurs en une seule, amélioration des expressions régulières afin de pouvoir récupérer les indices de correspondance.
</td></tr>
<tr>
<td>13
</td>
<td>Juin 2022
</td>
<td>L'accès à un élément spécifique d'un tableau peut se faire avec la méthode <i>at</i>, accès global à <i>await</i> dans les modules (évite d'avoir à l'envelopper dans une fonction async), propriétés et méthodes privées dans les classes via <i>#</i>, méthode <i>hasOwn</i> sur Object, l'erreur récupérée dans un bloc catch possède une propriété <i>cause</i> permettant d'obtenir plus de détails, ajout du flag v dans les expressions régulières pour améliorer la prise en charge des caractères Unicode, notamment les émojis.
</td></tr>
<tr>
<td>14
</td>
<td>Juin 2023
</td>
<td>Méthodes <i>findLast</i>, <i>findLastIndex</i>, toSorted, toReversed, toSpliced sur les tableaux.
</td></tr>
<tr>
<td>15
</td>
<td>Juin 2024
</td>
<td>Méthode <i>groupBy</i> sur les objets et les maps, méthodes <i>isWellFormed</i> et <i>toWellFormed</i> sur les chaînes, méthode <i>withResolvers</i> sur Promise, les ArrayBuffers peuvent être redimensionnés et transférés.
</td></tr>
<tr>
<td>ESNext
</td>
<td>Juin 2025
</td>
<td>En cours de développement
</td>
<td>
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="E4X">E4X</h3></div>
<p><b>ECMAScript for XML (E4X)</b> est une extension XML au langage ECMAScript. Il s'agit d'un standard différent<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Dénomination"><span id="D.C3.A9nomination"></span>Dénomination</h2></div>
<table class="wikitable">

<tbody><tr style="background: #ccccff;">
<th>Application
</th>
<th>Dénomination
</th>
<th>Dernière version
</th>
<th>Correspondance ECMAScript
</th></tr>
<tr>
<td>Navigateurs de type <a href="Gecko_(moteur_de_rendu)" title="Gecko (moteur de rendu)">Gecko</a> avec le moteur embarqué <a href="SpiderMonkey" title="SpiderMonkey">SpiderMonkey</a>, dont <a href="Mozilla_Firefox" title="Mozilla Firefox">Mozilla Firefox</a>
</td>
<td><a href="JavaScript" title="JavaScript">JavaScript</a>
</td>
<td>1.8
</td>
<td>ECMA-262, edition 3&nbsp;<sup id="fn_1_back"><a href="#fn_1">1</a></sup>
</td></tr>
<tr>
<td><a href="Internet_Explorer" title="Internet Explorer">Internet Explorer</a>
</td>
<td><a href="JScript" title="JScript">JScript</a>
</td>
<td>5.6.7
</td>
<td>ECMA-262, edition 3&nbsp;<sup id="fn_6_back"><a href="#fn_6">6</a></sup>
</td></tr>
<tr>
<td><a href="Opera" title="Opera">Opera</a>
</td>
<td>ECMAScript, avec des extensions <a href="JavaScript" title="JavaScript">JavaScript</a> et <a href="JScript" title="JScript">JScript</a>
</td>
<td>1.3/1.5
</td>
<td>ECMA-262, edition 3
</td></tr>
<tr>
<td>Navigateurs fondés sur <a href="KHTML" title="KHTML">KHTML</a>, incluant <a href="Konqueror" title="Konqueror">Konqueror</a> de KDE
</td>
<td><a href="JavaScript" title="JavaScript">JavaScript</a>
</td>
<td>1.5
</td>
<td>ECMA-262
</td></tr>
<tr>
<td>Framework <a href="Microsoft_.NET" title="Microsoft .NET">.NET</a> de Microsoft
</td>
<td>JScript .NET et Managed JScript
</td>
<td>8.0
</td>
<td>ECMA-262, edition 3&nbsp;<sup id="fn_2_back"><a href="#fn_2">2</a></sup>
</td></tr>
<tr>
<td><a href="Adobe_Flash" title="Adobe Flash">Adobe Flash</a>
</td>
<td><a href="ActionScript" title="ActionScript">ActionScript</a>
</td>
<td>2
<p>3
</p>
</td>
<td>ECMA-262, edition 3&nbsp;<sup id="fn_3_back"><a href="#fn_3">3</a></sup>
<p>ECMA-262, edition 4&nbsp;<sup id="fn_4_back"><a href="#fn_4">4</a></sup>
</p>
</td></tr>
<tr>
<td><a href="Adobe_Acrobat" title="Adobe Acrobat">Adobe Acrobat</a>
</td>
<td><a href="JavaScript" title="JavaScript">JavaScript</a>
</td>
<td>1.5
</td>
<td>ECMA-262, edition 3
</td></tr>
<tr>
<td>Langage de script général
</td>
<td>DMDScript
</td>
<td>1.06
</td>
<td>ECMA-262
</td></tr>
<tr>
<td><a href="OpenLaszlo" title="OpenLaszlo">OpenLaszlo Platform</a>
</td>
<td><a href="JavaScript" title="JavaScript">JavaScript</a>
</td>
<td>1.4
</td>
<td>ECMA-262, edition 3&nbsp;<sup id="fn_5_back"><a href="#fn_5">5</a></sup>
</td></tr>
<tr>
<td><a href="ICab" title="ICab">iCab</a>
</td>
<td>InScript
</td>
<td>3.22
</td>
<td>ECMA-262, edition 3
</td></tr>
<tr>
<td>Implémentation d'<a href="Extensible_Markup_Language" title="Extensible Markup Language">XML</a> dans les navigateurs fondés sur <a href="Gecko_(moteur_de_rendu)" title="Gecko (moteur de rendu)">Gecko</a> et les programmes embarqués comme SpiderMonkey
</td>
<td><a href="E4X" class="mw-redirect" title="E4X">E4X</a>
</td>
<td>???
</td>
<td>ECMA-357, edition 2
</td></tr></tbody></table>
<p><cite id="fn_1"><a href="#fn_1_back">Note (1)</a>:</cite> <a href="E4X" class="mw-redirect" title="E4X">E4X</a> en partie supporté par Gecko 1.9&nbsp;; pour d'autres fonctionnalités.
</p><p><cite id="fn_2"><a href="#fn_2_back">Note (2)</a>:</cite> Microsoft indique que JScript 8.0 supporte «&nbsp;presque toutes les caractéristiques d'ECMAScript Edition 3" mais ne donne pas de liste des caractéristiques non supportées.
</p><p><cite id="fn_3"><a href="#fn_3_back">Note (3)</a>:</cite> En plus du support d'ECMA-262 edition 3, ActionScript 2 inclus aussi un support des propriétés, fonctions et mécanisme qui avaient été proposés dans une version préliminaire d'ECMA-262 edition 3. Il n'est pas connu si ActionScript restera synchronisé avec de futures modifications des spécifications d'ECMAScript.
</p><p><cite id="fn_4"><a href="#fn_4_back">Note (4)</a>:</cite> Adobe indique supporter une version préliminaire de l'édition 4 d'ECMA-262.
</p><p><cite id="fn_5"><a href="#fn_5_back">Note (5)</a>:</cite> OpenLaszlo supporte partiellement ECMA-262 édition 3.
</p><p><cite id="fn_6"><a href="#fn_6_back">Note (6)</a>:</cite> Un document «&nbsp;JScript Deviations from ES3&nbsp;» a été publié par <a href="Microsoft" title="Microsoft">Microsoft</a>.
</p><p>Le support par Mozilla, (<a href="SpiderMonkey" title="SpiderMonkey">SpiderMonkey</a> en <a href="C_(langage)" title="C (langage)">langage C</a> et <a href="Rhino_(moteur_JavaScript)" title="Rhino (moteur JavaScript)">Rhino</a> en <a href="Java_(langage)" title="Java (langage)">Java</a>), sont utilisés par plusieurs programmes tiers, par exemple le <a href="Yahoo!_Widget_Engine" title="Yahoo! Widget Engine">Yahoo! Widget Engine</a> (Konfabulator) et le langage de script pour Macintosh JavaScript OSA.
</p><p><a href="Safari_(logiciel)" class="mw-redirect" title="Safari (logiciel)">Safari</a> utilise <a href="JavaScriptCore" title="JavaScriptCore">JavaScriptCore</a> qui est fondé sur la bibliothèque KJS de <a href="KDE" title="KDE">KDE</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Correspondance">Correspondance</h2></div>
<table class="wikitable">

<tbody><tr style="background: #ccccff;">
<th>JavaScript
</th>
<th>JScript
</th>
<th>ECMAScript
</th></tr>
<tr>
<td>1.0 (Netscape 2.0, mars 1996)
</td>
<td>1.0 (IE 3.0 — et première version, août 1996)
</td>
<td>
</td></tr>
<tr>
<td>1.1 (Netscape 3.0, août 1996)
</td>
<td>2.0 (IE 3.0 — dernière version, janvier 1997)
</td>
<td>
</td></tr>
<tr>
<td>1.2 (Netscape 4.0, juin 1997)
</td>
<td>
</td>
<td>
</td></tr>
<tr>
<td>1.3 (Netscape 4.5, octobre 1998)
</td>
<td>3.0 (IE 4.0, octobre 1997)
</td>
<td>édition 1 (juin 1997) / édition 2 (juin 1998)
</td></tr>
<tr>
<td>1.4 (Netscape Server uniquement)
</td>
<td>4.0 (Visual Studio 6, pas de nouvelle version d'IE)
</td>
<td>
</td></tr>
<tr>
<td>
</td>
<td>5.0 (IE 5.0, mars 1999)
</td>
<td>
</td></tr>
<tr>
<td>
</td>
<td>5.1 (IE 5.01)
</td>
<td>
</td></tr>
<tr>
<td>1.5 (Netscape 6.0, nov 2000&nbsp;; mais aussi<br>plus tard les versions de Netscape et <a href="Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla</a>)
</td>
<td>5.5 (IE 5.5, juillet 2000)
</td>
<td>édition 3 (décembre 1999)
</td></tr>
<tr>
<td>
</td>
<td>5.6 (IE 6.0, octobre 2001)
</td>
<td>
</td></tr>
<tr>
<td>1.6 (Gecko 1.8, Firefox 1.5, novembre 2005)
</td>
<td>
</td>
<td>édition 3, avec pour nouveautés: <a href="E4X" class="mw-redirect" title="E4X">E4X</a>, <code>Array</code> extras (e.g. <code>Array.prototype.forEach</code>), <code>Array</code> et <code>String</code> generics <a rel="nofollow" class="external autonumber" href="https://developer.mozilla.org/en/docs/New_in_JavaScript_1.6">[1]</a>
</td></tr>
<tr>
<td>1.7 (Gecko 1.8.1, Firefox 2.0, octobre 2006)
</td>
<td>
</td>
<td>
</td></tr>
<tr>
<td>1.8 (Gecko 1.9, Firefox 3.0, mai 2007)
</td>
<td>
</td>
<td>
</td></tr>
<tr>
<td>2.0
</td>
<td>
</td>
<td>édition 4 (en développement)
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Annexes">Annexes</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h3></div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><span class="ouvrage" id="ECMA2021">ECMA, «&nbsp;<a rel="nofollow" class="external text" href="https://www.ecma-international.org/publications-and-standards/standards/ecma-262/"><cite style="font-style:normal;">La 12ème version du standard</cite></a>&nbsp;», <time class="nowrap" datetime="2021-06" data-sort-value="2021-06">juin 2021</time> <small style="line-height:1em;">(consulté en <time class="nowrap" datetime="2021-06" data-sort-value="2021-06">juin 2021</time>)</small></span>.</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.ecmascript-lang.org/download.php">Publication d'un site web dédié</a>.</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Eich2008"><span class="ouvrage" id="Brendan_Eich2008">Brendan <span class="nom_auteur">Eich</span>, «&nbsp;<a rel="nofollow" class="external text" href="https://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html"><cite style="font-style:normal;">ECMAScript Harmony</cite></a>&nbsp;», <time class="nowrap" datetime="2008-08-13" data-sort-value="2008-08-13">13 août 2008</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2015-12-17" data-sort-value="2015-12-17">17 décembre 2015</time>)</small></span></span>.</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262%205th%20edition%20December%202009.pdf"><cite style="font-style:normal;" lang="en">ECMAScript Language Specification, 5th edition</cite></a>&nbsp;»</span>.</span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a> </span><span class="reference-text"><span class="ouvrage">«&nbsp;<a rel="nofollow" class="external text" href="https://kangax.github.io/compat-table/es5/"><cite style="font-style:normal;">ECMAScript 5 compatibility table</cite></a>&nbsp;», sur <span class="italique">kangax.github.io</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2015-12-17" data-sort-value="2015-12-17">17 décembre 2015</time>)</small></span>.</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a> </span><span class="reference-text"><span class="ouvrage">«&nbsp;<a rel="nofollow" class="external text" href="http://www.ecma-international.org/ecma-262/6.0/index.html"><cite style="font-style:normal;">ECMAScript 2015 Language Specification – ECMA-262 6th Edition</cite></a>&nbsp;», sur <span class="italique">www.ecma-international.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2015-12-17" data-sort-value="2015-12-17">17 décembre 2015</time>)</small></span>.</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a> </span><span class="reference-text"><span class="ouvrage">«&nbsp;<a rel="nofollow" class="external text" href="https://kangax.github.io/compat-table/es6/"><cite style="font-style:normal;">ECMAScript 6 compatibility table</cite></a>&nbsp;», sur <span class="italique">kangax.github.io</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2015-12-17" data-sort-value="2015-12-17">17 décembre 2015</time>)</small></span>.</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Rauschmayer"><span class="ouvrage" id="Axel_Rauschmayer">Axel Rauschmayer, «&nbsp;<a rel="nofollow" class="external text" href="https://exploringjs.com/es2016-es2017/ch_faq.html#_isnt-ecmascript-2016-too-small"><cite style="font-style:normal;">Isn’t ECMAScript 2016 too small?</cite></a>&nbsp;» <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2019-06-12" data-sort-value="2019-06-12">12 juin 2019</time>)</small></span></span>.</span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/standards/Ecma-357.htm">ECMA-357</a>.</span>
</li>
</ol></div>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li><a href="JavaScript" title="JavaScript">JavaScript</a></li>
<li><a href="TypeScript" title="TypeScript">TypeScript</a></li>
<li><a href="ActionScript" title="ActionScript">ActionScript</a></li>
<li><a href="JScript" title="JScript">JScript</a></li>
<li><a href="Sp%C3%A9cification_de_JavaScript" title="Spécification de JavaScript">Spécification de JavaScript</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.ecmascript-lang.org/">Référence ECMAScript 4</a></li>
<li><a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">Standard ECMA-262&nbsp;: Spécification ECMAScript 7<sup>e</sup> édition (juin 2016)</a> <abbr class="abbr indicateur-format format-pdf" title="Document au format Portable Document Format (PDF)">[PDF]</abbr></li>
<li><a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-290.PDF">Standard ECMA-290&nbsp;: Spécification ECMAScript Components (juin 1999)</a> <abbr class="abbr indicateur-format format-pdf" title="Document au format Portable Document Format (PDF)">[PDF]</abbr></li>
<li><a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/Ecma-327.pdf">Standard ECMA-327&nbsp;: Spécification ECMAScript <abbr class="abbr" title="Troisième">3<sup>e</sup></abbr> édition Compact Profile (juin 2001)</a> <abbr class="abbr indicateur-format format-pdf" title="Document au format Portable Document Format (PDF)">[PDF]</abbr></li>
<li><a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/Ecma-357.pdf">Standard ECMA-357&nbsp;: Spécification ECMAScript pour XML (E4X) (juin 2004)</a> <abbr class="abbr indicateur-format format-pdf" title="Document au format Portable Document Format (PDF)">[PDF]</abbr></li>
<li><a rel="nofollow" class="external text" href="http://wiki.ecmascript.org">Wiki du comité ECMAScript 4</a></li>
<li><a rel="nofollow" class="external text" href="http://ejohn.org/blog/the-world-of-ecmascript">The World of ECMAScript</a>&nbsp;: blog de John Resig's sur ECMAScript</li></ul>
<div class="navbox-container" style="clear:both;">

</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-08-25" href="https://fr.wikipedia.org/wiki/?title=ECMAScript&amp;oldid=228425884">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>